package com.ruoyi.ob.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 采购订单主对象 purchase_order
 * 
 * @author ruoyi
 * @date 2025-06-18
 */
public class PurchaseOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderId;

    /** 供应商编号 */
    @Excel(name = "供应商编号")
    private String supplierId;

    /** 采购日期 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "采购日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderDate;

    /** 预计到货日期 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "预计到货日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expectArrivalDate;

    /** 订单状态（待审核、已审核、已执行、已取消） */
    @Excel(name = "订单状态", readConverterExp = "待=审核、已审核、已执行、已取消")
    private String status;

    /** 审核意见 */
    @Excel(name = "审核意见")
    private String auditOpinion;

    public void setOrderId(String orderId) 
    {
        this.orderId = orderId;
    }

    public String getOrderId() 
    {
        return orderId;
    }

    public void setSupplierId(String supplierId) 
    {
        this.supplierId = supplierId;
    }

    public String getSupplierId() 
    {
        return supplierId;
    }

    public void setOrderDate(Date orderDate) 
    {
        this.orderDate = orderDate;
    }

    public Date getOrderDate() 
    {
        return orderDate;
    }

    public void setExpectArrivalDate(Date expectArrivalDate) 
    {
        this.expectArrivalDate = expectArrivalDate;
    }

    public Date getExpectArrivalDate() 
    {
        return expectArrivalDate;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setAuditOpinion(String auditOpinion) 
    {
        this.auditOpinion = auditOpinion;
    }

    public String getAuditOpinion() 
    {
        return auditOpinion;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("supplierId", getSupplierId())
            .append("orderDate", getOrderDate())
            .append("expectArrivalDate", getExpectArrivalDate())
            .append("status", getStatus())
            .append("auditOpinion", getAuditOpinion())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
